package abs.domain;

import java.io.Serializable;

import java.lang.StringBuilder;

import java.util.Calendar;
import java.util.LinkedHashSet;
import java.util.Set;

import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

import javax.xml.bind.annotation.*;

import javax.persistence.*;

/**
 */

@Entity
@NamedQueries({
		@NamedQuery(name = "findAllTipoClientess", query = "select myTipoClientes from TipoClientes myTipoClientes"),
		@NamedQuery(name = "findTipoClientesByPrimaryKey", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100cdgo = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100cdgo", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100cdgo = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100cdgoContaining", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100cdgo like ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100desc", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100desc = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100descContaining", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100desc like ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100esta", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100esta = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100estaContaining", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100esta like ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100fead", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100fead = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100feadAfter", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100fead > ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100feadBefore", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100fead < ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100femo", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100femo = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100femoAfter", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100femo > ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100femoBefore", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100femo < ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100load", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100load = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100loadContaining", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100load like ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100lomo", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100lomo = ?1"),
		@NamedQuery(name = "findTipoClientesByTipocl100lomoContaining", query = "select myTipoClientes from TipoClientes myTipoClientes where myTipoClientes.tipocl100lomo like ?1") })
@Table(catalog = "absV2", name = "tipocl100")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "absWeb/abs/domain", name = "TipoClientes")
@XmlRootElement(namespace = "absWeb/abs/domain")
public class TipoClientes implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 */

	@Column(name = "tipocl100cdgo", length = 5, nullable = false)
	@Basic(fetch = FetchType.EAGER)
	@Id
	@XmlElement
	String tipocl100cdgo;
	/**
	 */

	@Column(name = "tipocl100desc", length = 60, nullable = false)
	@Basic(fetch = FetchType.EAGER)
	@XmlElement
	String tipocl100desc;
	/**
	 */

	@Column(name = "tipocl100esta", length = 1)
	@Basic(fetch = FetchType.EAGER)
	@XmlElement
	String tipocl100esta;
	/**
	 */

	@Column(name = "tipocl100load", length = 30)
	@Basic(fetch = FetchType.EAGER)
	@XmlElement
	String tipocl100load;
	/**
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "tipocl100fead")
	@Basic(fetch = FetchType.EAGER)
	@XmlElement
	Calendar tipocl100fead;
	/**
	 */

	@Column(name = "tipocl100lomo", length = 30)
	@Basic(fetch = FetchType.EAGER)
	@XmlElement
	String tipocl100lomo;
	/**
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "tipocl100femo")
	@Basic(fetch = FetchType.EAGER)
	@XmlElement
	Calendar tipocl100femo;

	/**
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns({ @JoinColumn(name = "tipocl100nocia", referencedColumnName = "co000nocia", nullable = false) })
	@XmlTransient
	Companias companias;
	/**
	 */
	@OneToMany(mappedBy = "tipoClientes", cascade = { CascadeType.REMOVE }, fetch = FetchType.LAZY)
	@XmlElement(name = "", namespace = "")
	java.util.Set<abs.domain.Clientes> clienteses;

	/**
	 */
	public void setTipocl100cdgo(String tipocl100cdgo) {
		this.tipocl100cdgo = tipocl100cdgo;
	}

	/**
	 */
	public String getTipocl100cdgo() {
		return this.tipocl100cdgo;
	}

	/**
	 */
	public void setTipocl100desc(String tipocl100desc) {
		this.tipocl100desc = tipocl100desc;
	}

	/**
	 */
	public String getTipocl100desc() {
		return this.tipocl100desc;
	}

	/**
	 */
	public void setTipocl100esta(String tipocl100esta) {
		this.tipocl100esta = tipocl100esta;
	}

	/**
	 */
	public String getTipocl100esta() {
		return this.tipocl100esta;
	}

	/**
	 */
	public void setTipocl100load(String tipocl100load) {
		this.tipocl100load = tipocl100load;
	}

	/**
	 */
	public String getTipocl100load() {
		return this.tipocl100load;
	}

	/**
	 */
	public void setTipocl100fead(Calendar tipocl100fead) {
		this.tipocl100fead = tipocl100fead;
	}

	/**
	 */
	public Calendar getTipocl100fead() {
		return this.tipocl100fead;
	}

	/**
	 */
	public void setTipocl100lomo(String tipocl100lomo) {
		this.tipocl100lomo = tipocl100lomo;
	}

	/**
	 */
	public String getTipocl100lomo() {
		return this.tipocl100lomo;
	}

	/**
	 */
	public void setTipocl100femo(Calendar tipocl100femo) {
		this.tipocl100femo = tipocl100femo;
	}

	/**
	 */
	public Calendar getTipocl100femo() {
		return this.tipocl100femo;
	}

	/**
	 */
	public void setCompanias(Companias companias) {
		this.companias = companias;
	}

	/**
	 */
	public Companias getCompanias() {
		return companias;
	}

	/**
	 */
	public void setClienteses(Set<Clientes> clienteses) {
		this.clienteses = clienteses;
	}

	/**
	 */
	public Set<Clientes> getClienteses() {
		if (clienteses == null) {
			clienteses = new java.util.LinkedHashSet<abs.domain.Clientes>();
		}
		return clienteses;
	}

	/**
	 */
	public TipoClientes() {
	}

	/**
	 * Copies the contents of the specified bean into this bean.
	 *
	 */
	public void copy(TipoClientes that) {
		setTipocl100cdgo(that.getTipocl100cdgo());
		setTipocl100desc(that.getTipocl100desc());
		setTipocl100esta(that.getTipocl100esta());
		setTipocl100load(that.getTipocl100load());
		setTipocl100fead(that.getTipocl100fead());
		setTipocl100lomo(that.getTipocl100lomo());
		setTipocl100femo(that.getTipocl100femo());
		setCompanias(that.getCompanias());
		setClienteses(new java.util.LinkedHashSet<abs.domain.Clientes>(that.getClienteses()));
	}

	/**
	 * Returns a textual representation of a bean.
	 *
	 */
	public String toString() {

		StringBuilder buffer = new StringBuilder();

		buffer.append("tipocl100cdgo=[").append(tipocl100cdgo).append("] ");
		buffer.append("tipocl100desc=[").append(tipocl100desc).append("] ");
		buffer.append("tipocl100esta=[").append(tipocl100esta).append("] ");
		buffer.append("tipocl100load=[").append(tipocl100load).append("] ");
		buffer.append("tipocl100fead=[").append(tipocl100fead).append("] ");
		buffer.append("tipocl100lomo=[").append(tipocl100lomo).append("] ");
		buffer.append("tipocl100femo=[").append(tipocl100femo).append("] ");

		return buffer.toString();
	}

	/**
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = (int) (prime * result + ((tipocl100cdgo == null) ? 0 : tipocl100cdgo.hashCode()));
		return result;
	}

	/**
	 */
	public boolean equals(Object obj) {
		if (obj == this)
			return true;
		if (!(obj instanceof TipoClientes))
			return false;
		TipoClientes equalCheck = (TipoClientes) obj;
		if ((tipocl100cdgo == null && equalCheck.tipocl100cdgo != null) || (tipocl100cdgo != null && equalCheck.tipocl100cdgo == null))
			return false;
		if (tipocl100cdgo != null && !tipocl100cdgo.equals(equalCheck.tipocl100cdgo))
			return false;
		return true;
	}
}
